平成19年 春期 基本情報技術者 午後 問11
問11 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。
〔プログラムの説明〕 ある小学校における保護者名簿の作成プログラムである。 昨年度の保護者名簿及び新入学児童(新1年生)の保護者名簿を入力し,本年度の保護者名簿を作成する。 (1) 昨年度の保護者名簿及び本年度の保護者名簿は,次のレコード様式の順ファイルである。
@ レコードは,先頭から 33 けたのデータ(保護者氏名及び電話番号)の昇順に整列されている。 A 在校児童欄には,保護者が保護する在校児童の学年と氏名が格納されている。 B 在校児童が複数いる場合,学年で昇順に整列されている。 C 在校児童が4人以下の場合,左詰めで格納され,残りの領域には空白が詰められている。 例:3年生と5年生に在校児童をもつ保護者の場合,次のように格納される。
(2) 新入学児童の保護者名簿は,次のレコード様式の順ファイルである。
@ レコードは,先頭から 33 けたのデータ(保護者氏名及び電話番号)の昇順に整列されている。 A 児童氏名には,保護者が保護する新入学児童の氏名が格納されている。 B 新入学児童が4人以下の場合,左詰めで格納され,残りの領域には空白が詰められている。 (3) 1人の保護者が保護する児童は5人を超えないものとする。 (4) 在校児童の学年は無条件に1学年繰り上げ,6学年を修了した児童は卒業する。 (5) 転入や転出は考慮しない。 (6) 保護している在校児童がすべて卒業し,かつ保護する新入学児童がいない場合, その保護者のレコードを削除する。 (7) 新入学児童の保護者が未登録だった場合,その保護者のレコードを新規に登録する。
〔プログラム〕 (行番号) 1 DATA DIVISION. 2 FILE SECTION. 3 FD OLD-FILE. 4 01 OLD-REC PIC X(138). 5 FD NEW-FILE. 6 01 NEW-REC PIC X(138). 7 FD ENT-FILE. 8 01 ENT-REC PIC X(133). 9 WORKING-STORAGE SECTION. 10 01 W-OLD-REC. 11 02 OLD-ID VALUE SPACE. 12 88 OLD-EOF VALUE HIGH-VALUE. 13 03 OLD-PARENT PIC X(20). 14 03 OLD-TEL PIC X(13). 15 02 OLD-PUPIL OCCURS 5 TIMES. 16 03 OLD-NUM PIC 9(1). 17 03 OLD-NAME PIC X(20). 18 01 W-NEW-REC. 19 02 NEW-ID. 20 03 NEW-PARENT PIC X(20). 21 03 NEW-TEL PIC X(13). 22 02 NEW-PUPIL OCCURS 5 TIMES. 23 03 NEW-NUM PIC 9(1). 24 03 NEW-NAME PIC X(20). 25 01 W-ENT-REC. 26 02 ENT-ID VALUE SPACE. 27 88 ENT-EOF VALUE HIGH-VALUE. 28 03 ENT-PARENT PIC X(20). 29 03 ENT-TEL PIC X(13). 30 02 ENT-NAME OCCURS 5 TIMES PIC X(20). 31 01 OLD-CNT PIC 9(1). 32 01 NEW-CNT PIC 9(1). 33 01 ENT-CNT PIC 9(1). 34 01 READ-FLAG PIC X(1) VALUE "B". 35 88 READ-BOTH VALUE "B". 36 88 READ-OLD-FILE VALUE "O". 37 88 READ-ENT-FILE VALUE "E". 38 PROCEDURE DIVISION. 39 MAIN-PROC. 40 OPEN INPUT OLD-FILE ENT-FILE OUTPUT NEW-FILE. 41 PERFORM UNTIL OLD-EOF AND ENT-EOF 42 IF READ-OLD-FILE OR READ-BOTH THEN 43 READ OLD-FILE INTO W-OLD-REC 44 AT END SET OLD-EOF TO TRUE 45 END-READ 46 END-IF 47 IF READ-ENT-FILE OR READ-BOTH THEN 48 READ ENT-FILE INTO W-ENT-REC 49 AT END SET ENT-EOF TO TRUE 50 END-READ 51 END-IF 52 IF THEN 53 PERFORM CREATE-PROC 54 END-IF 55 END-PERFORM. 56 CL OS E OLD-FILE ENT-FILE NEW-FILE. 57 STOP RUN. 58 CREATE-PROC. 59 MOVE SPACE TO W-NEW-REC. 60 EVALUATE TRUE 61 WHEN OLD-ID < ENT-ID 62 PERFORM NUM-UP-PROC 63 64 SET READ-OLD-FILE TO TRUE 65 WHEN OLD-ID = ENT-ID 66 PERFORM NUM-UP-PROC 67 MOVE OLD-ID TO NEW-ID 68 PERFORM ENT-ADD-PROC 69 MOVE 1 TO OLD-CNT 70 PERFORM VARYING NEW-CNT FROM ENT-CNT BY 1 71 UNTIL NEW-CNT > 5 72 73 ADD 1 TO OLD-CNT 74 END-PERFORM 75 SET READ-BOTH TO TRUE 76 WHEN OLD-ID > ENT-ID 77 MOVE ENT-ID TO NEW-ID 78 PERFORM ENT-ADD-PROC 79 SET READ-ENT-FILE TO TRUE 80 END-EVALUATE. 81 IF NEW-PUPIL(1) NOT = SPACE THEN 82 WRITE NEW-REC FROM W-NEW-REC 83 END-IF. 84 NUM-UP-PROC. 85 PERFORM VARYING OLD-CNT FROM 1 BY 1 86 UNTIL OLD-CNT > 5 OR OLD-PUPIL(OLD-CNT) = SPACE 87 IF OLD-NUM(OLD-CNT) < 6 THEN 88 89 ELSE 90 MOVE SPACE TO OLD-PUPIL(OLD-CNT) 91 END-IF 92 END-PERFORM. 93 ENT-ADD-PROC. 94 PERFORM VARYING ENT-CNT FROM 1 BY 1 95 UNTIL ENT-CNT > 5 OR ENT-NAME(ENT-CNT) = SPACE 96 MOVE 1 TO NEW-NUM(ENT-CNT) 97 MOVE ENT-NAME(ENT-CNT) TO NEW-NAME(ENT-CNT) 98 END-PERFORM.
設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。
a に関する解答群 ア NOT (OLD-EOF AND ENT-EOF) イ NOT (OLD-EOF OR ENT-EOF) ウ OLD-EOF AND ENT-EOF エ OLD-EOF OR ENT-EOF b 〜 d に関する解答群 ア ADD 1 TO OLD-NUM(OLD-CNT) イ MOVE OLD-ID TO NEW-ID ウ MOVE OLD-PUPIL(ENT-CNT) TO NEW-PUPIL(NEW-CNT) エ MOVE OLD-PUPIL(OLD-CNT) TO NEW-PUPIL(NEW-CNT) オ MOVE W-OLD-REC TO W-NEW-REC カ PERFORM ENT-ADD-PROC
設問2 保護者名簿から削除される保護者,つまり,昨年度の保護者名簿には登録されていたが, 本年度の保護者名簿には登録されない保護者の氏名と電話番号を画面に表示するようにプログラムを改造したい。 正しい答えを,解答群の中から選べ。
解答群 ア
イ
ウ
エ
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||